1. Field of the Invention
The present invention generally relates to distributed computing. More specifically, the present invention relates to methods and apparatuses for allocating resources in a compute farm.
2. Related Art
The availability of cheap hardware has given rise to distributed computing systems called compute farms in which a large number of computer systems, e.g., servers, are coupled together using a high-speed network. Compute farms are being used by many enterprises for performing compute-intensive tasks. Specifically, compute farms have been used to perform a wide variety of tasks, including, but not limited to, computer-aided design, graphics rendering, software compilation, and database query processing.
Conventional techniques usually use a queuing system to manage resources in a compute farm. In the conventional approach, a system administrator typically configures the queuing system according to a company's standard usage policies. When a project needs guaranteed resources to meet a milestone, the system administrator typically dedicates a set of computer systems in the compute farm for the project. Unfortunately, this approach can lead to reduced utilization if the project does not use all of the dedicated resources. Further, note that the system administrator typically has to manually reconfigure the queuing system to dedicate the resources, and hence, this approach inherits all of the drawbacks and risks that accompany any procedure that requires manual intervention.
Hence, there is a strong need to find systems and techniques to allocate resources in a compute farm without the above-described drawbacks.